ヘッダーをスキップ
Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド
リリース7.0
E05169-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

レプリケーション・エージェントの起動および停止

レプリケーション・スキームを定義した後、レプリケーション・スキームに含まれている各データ・ストアのレプリケーション・エージェントを起動できます。


注意: アクセス制御を有効にしてTimesTenをインストールした場合、レプリケーション・エージェントを起動および停止するには、データ・ストアに対するADMIN権限が必要です。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のアクセス制御に関する説明を参照してください。

レプリケーション・エージェントは、次の項で説明するように、コマンドラインまたはプログラムから起動および停止することができます。

コマンドラインからのレプリケーション・エージェントの制御

レプリケーション・エージェントをコマンドラインから起動および停止するには、-repStartまたは-repStopオプションを指定してttAdminユーティリティを使用します。

ttAdmin -repStart DSN

ttAdmin -repStop DSN


注意: レプリケーション・エージェントの実行時には使用できないレプリケーションDDLを、ttAdmin -repStartコマンドを発行してからレプリケーション・エージェントが実際に起動するまでの短い間に使用できる場合があります。たとえば、この期間中にレプリケーション・スキームを削除できる場合があります。

例4.3

masterDSNおよびsubscriberDSNというDSNのレプリケーション・エージェントを起動するには、次のように入力します。

ttAdmin -repStart masterDSN

ttAdmin -repStart subscriberDSN

レプリケーション・エージェントを停止するには、次のように入力します。

ttAdmin -repStop masterDSN

ttAdmin -repStop subscriberDSN

また、ttRepStartおよびttRepStopプロシージャを使用して、ttIsqlコマンドラインからレプリケーション・エージェントを起動および停止することもできます。

例4.4

masterDSNというDSNのレプリケーション・エージェントを起動および停止するには、次のように入力します。

> ttIsql masterDSN

Command> call ttRepStart;

Command> call ttRepStop;

また、ttAdminユーティリティを使用してレプリケーション再起動ポリシーを設定することもできます。デフォルトでは、このポリシーはmanualです。これによって、前述のようにレプリケーション・エージェントを起動および停止できます。データ・ストアのレプリケーション再起動ポリシーは、alwaysまたはnorestartに設定することもできます。

表4.2
再起動ポリシー
TimesTenデーモンの起動時にレプリケーション・エージェントを起動
エラー発生時または無効化が行われた場合にレプリケーション・エージェントを再起動
always
する
する
manual
しない
する
norestart
しない
しない
レプリケーション再起動ポリシー

注意: レプリケーション・エージェントはTimesTenデーモンによって管理されます。TimesTenデーモンは、レプリケーション・エージェントを起動する前に起動されている必要があります。

再起動ポリシーがalwaysの場合、データ・ストアがメモリーにロードされるとレプリケーション・エージェントが自動的に起動されます(データ・ストアがメモリーにロードされるタイミングを指定する方法については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のRAMポリシーの指定に関する説明を参照してください)。

例4.5

ttAdminを使用して、レプリケーション再起動ポリシーをalwaysに設定するには、次のように入力します。

ttAdmin -repPolicy always DSN

ポリシーをmanualに再設定するには、次のように入力します。

ttAdmin -repPolicy manual DSN

エラー発生またはデータ・ストアの無効化の後、manualおよびalwaysの両方のポリシーによってレプリケーション・エージェントが自動的に再起動されます。レプリケーション・エージェントが自動的に再起動されると、多くの場合、データ・ストアへの初期接続になります。たとえば、これは、すべてのアプリケーションの接続を切断する必要がある致命的なエラーが発生した後に行われます。通常、データ・ストアへの初期接続では、最新のチェックポイント・ファイルをロードする必要があり、また、多くの場合リカバリを実行する必要があります。非常に大容量のデータ・ストアの場合、このプロセスに数分かかる場合があります。この間、新しい接続が行われなず、古い接続の切断が終了されないように、データ・ストアでのすべてのアクティビティがブロックされます。また、この結果、すべてのアプリケーションの接続が切断されるまで古いデータ・ストアが存続するため、データ・ストアの2つのコピーが同時に存在する場合もあります。初期接続時が重要な非常に大容量のデータ・ストアの場合、新しいデータ・ストアを起動する前にまず古いデータ・ストアが非アクティブになるまで待機する必要がある場合があります。これは、再起動ポリシーnorestartに設定してレプリケーション・エージェントが自動的に再起動されないように指定することで実現できます。

プログラムからのレプリケーション・エージェントの制御

プログラムからデータ・ストアのレプリケーション・エージェントを起動および停止するには、レプリケーション・データ・ストアに接続し、ttRepStartおよびttRepStopプロシージャを使用します。

例4.6

hdbc接続ハンドルで識別されるデータ・ストアのレプリケーション・エージェントを起動および停止するには、次のように入力します。

rc = SQLAllocStmt( hdbc, &hstmt );

rc = SQLExecDirect( hstmt, (SQLCHAR *)

    "CALL ttRepStart()", SQL_NTS );

rc = SQLExecDirect( hstmt, (SQLCHAR *)

    "CALL ttRepStop()", SQL_NTS );

レプリケーション再起動ポリシーは、プログラムでttRepPolicySetプロシージャをコールして設定できます。このプロシージャを使用すると、「コマンドラインからのレプリケーション・エージェントの制御」で説明されているttAdmin -repPolicyの場合と同様の方法で、データ・ストアの再起動ポリシーをmanual(デフォルト)、alwaysまたはnorestartに設定できます。

例4.7

hdbc接続ハンドルで識別されるデータ・ストアのレプリケーション・ポリシーをalwaysに設定するには、次のように入力します。

rc = SQLAllocStmt( hdbc, &hstmt );

rc = SQLExecDirect( hstmt, (SQLCHAR *)

    "CALL ttRepPolicy ('always')", SQL_NTS );